//
// Description: 48. 旋转图像
// Created by Loading on 2022/4/3.
//

#include <bits/stdc++.h>

using namespace std;

void rotate(vector<vector<int>> &matrix) {
    int n = matrix.size();

    for (int i = 0; i < n / 2; ++i) {
        for (int j = 0; j < (n + 1) / 2; ++j) {
            swap(matrix[i][j], matrix[j][n - i - 1]);
            swap(matrix[i][j], matrix[n - i - 1][n - j - 1]);
            swap(matrix[i][j], matrix[n - j - 1][i]);
        }
    }
}

int main() {
    vector<vector<int>> matrix{{1, 2, 3},
                               {4, 5, 6},
                               {7, 8, 9}};
    rotate(matrix);
    for (const auto& v : matrix) {
        for (auto x : v) {
            cout << x << ' ';
        }
        cout << endl;
    }

    return 0;
}